Media processing that, for example, compresses and decompresses digitalized video data, audio data and the like, has a large amount of operation. Therefore, special-purpose hardware, a high-performance digital signal processor (DSP) and the like for media processing have become popular.
Among some kinds of media processing as above, a great variety of standards such as moving picture experts group 2 (MPEG-2), MPEG-4, H.263, and H.264 have been put into practical use. Accordingly, digital audio-visual (AV) equipment is required to support media processing of a plurality of standards. In addition, complexity of each of media processing applications is increasing, and the size of an image, the number of channels of audio and the like are also increasing. Accordingly, the amount of operation continues increasing.
Therefore, an attempt is made to improve performance by using a high-performance multi-thread processor (for example, see Non-Patent Literature 1). Such a processor executes a plurality of programs at the same time, and accordingly operating efficiency thereof has been greatly improved.
When a multi-thread processor executes a plurality of threads (programs) at the same time, one thread and at least one other thread often have a dependency relationship, and for example, after a predetermined write instruction to write data is executed during execution of the one thread, a read instruction to read the data written by the predetermined write instruction is executed during execution of the another thread.
Such a case is implemented by a technology disclosed in Patent Literature 1.
According to Patent Literature 1, the dependency relationship between one thread and at least one other thread is implemented by managing an address in a memory area. To be specific, according to the technology disclosed in Patent Literature 1, when a write instruction is executed during execution of the one thread with respect to the managed address, the other thread can access an area indicated by the address, i.e., reading can be performed in the area during execution of the other thread.